﻿using Kavaa.Modules.PortailMedical.Entity;
using Kavaa.Modules.PortailMedical.Interface;
using Kavaa.Modules.PortailMedical.Presentation.Models;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Kavaa.Modules.PortailMedical.Presentation.Controllers
{
    public class PrestataireController:Controller
    {

        public ActionResult AccueilPrestataire()
        {
            return View();

        }
        public ActionResult Inscrire()
        {
            List < String > types= new List<String>();
            types.Add("--Choix"); types.Add("Cabinet"); types.Add("Clinique"); types.Add("Mutuelle");
            @ViewBag.list = types;
            return View();
        }

        [HttpPost]

        public ActionResult AddAdministrateur(MyViewModel Model)
        {
            int IdActeur = Kavaa.Modules.PortailMedical.Presentation.Services.Prestataire.AddActeur(Model.Acteur);

            ViewBag.IdActeur = IdActeur;
            return View();
        }

        [HttpPost]

        public void AddUtilisateur(MyViewModel Model, int ActeurId)
        {
            int id = Kavaa.Modules.PortailMedical.Presentation.Services.PortailMedical.AddUtilisateur(Model.utilisateur, ActeurId);
            Utilisateur user1 = Kavaa.Modules.PortailMedical.Presentation.Services.PortailMedical.GetUserById(id);
            user1.Etatcompte = 1;
            user1.Fonction = "Administrateur";
            Utilisateur user = user1;
            if (Model.Medecin.INP != null)
            {
                Kavaa.Modules.PortailMedical.Presentation.Services.Prestataire.AddMedecin(id, Model.Medecin.INP);
            }

            string emailFrom = "khadijamimilahlou5@gmail.com";
            string password = "zaineb@2010";
            string emailTo = user.Email;
            string fileAttachmentPath = @"C:\temp\itil.txt";
            int result = -1;


            try
            {
                IMail client = new Kavaa.Modules.PortailMedical.Services.Mail();

                List<FileAttachment> allAttachments = new List<FileAttachment>();
                FileAttachment attachment = new FileAttachment();
                attachment.Info = new FileInfo(fileAttachmentPath);
                attachment.FileContentBase64 = Convert.ToBase64String(System.IO.File.ReadAllBytes(fileAttachmentPath));
                allAttachments.Add(attachment);

                result = client.SendEmail(emailFrom, password, new string[] { emailTo }, null,
                  "Votre compte_MediciMaroc", "Votre login: " + user.login + "_ Votre mot de passe:" + user.motPasse, false, allAttachments.ToArray());
                Console.WriteLine("Result: " + result);

            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

        }

        public PartialViewResult Accreditations()
        {
            
            Accreditations Accreditations = Kavaa.Modules.PortailMedical.Presentation.Services.Prestataire.GetAccreditationsAttentePrestataire();



            return PartialView(Accreditations);
        }
        [HttpPost]
        public void ConfirmAccredit(int idAccredit)
        {
            Utilisateur user = (Utilisateur)(Session["user"]);

            Kavaa.Modules.PortailMedical.Presentation.Services.Prestataire.UpdateEtatAccreditPrestataire(1, idAccredit);
            Accreditations Accreditations1 = Kavaa.Modules.PortailMedical.Presentation.Services.Prestataire.GetAccreditationsAttentePrestataire();


        }
        [HttpPost]
        public void RejectAccredit(int idAccredit)
        {
            Utilisateur user = (Utilisateur)(Session["user"]);
            Kavaa.Modules.PortailMedical.Presentation.Services.Prestataire.UpdateEtatAccreditPrestataire(2, idAccredit);
            Accreditations Accreditations2 = Kavaa.Modules.PortailMedical.Presentation.Services.Prestataire.GetAccreditationsAttentePrestataire();

        }

        public ActionResult TraiterAccredit()
        {
           
            Accreditations Accreditations = Kavaa.Modules.PortailMedical.Presentation.Services.Prestataire.GetAccreditationsAttentePrestataire();



            return PartialView(Accreditations);
        }

        public ActionResult Confirmation()
        {
            return PartialView();
        }
        public ActionResult Deconnexion()
        {

            return RedirectToAction("SignIn", "Test");
        }
    }
}